<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/3/26 0026
 * Time: 20:48
 */
//加锁

//锁定一个文件可以防止一个读取脚本读取一个正在被写入的文件 这个锁的唯一先决条件就是两个脚本(读取和写入)实行枷锁机制
while (1) {
    //写操作
    $fp = fopen('./flock.txt', 'w');
    echo "Waiting for lock..." . PHP_EOL;
    $unblock = true;
    flock($fp, LOCK_EX|LOCK_NB, $unblock);//申请排它锁并且在该锁定被获取之前阻挡进一步的操作 一个排它锁只能在文件没有其他锁定时授予
    echo 'ok' . PHP_EOL;
    $date = date("Y-m-d H:i:s\n");
    echo $date . PHP_EOL;
    fputs($fp, $date);
    sleep(1);
    echo 'Releasing Lock...';
    flock($fp, LOCK_UN);
    echo "ok\n";
    fclose($fp);
    usleep(1);
}

